package com.googlecode.vmock;

/**
 * A template class used specifically for recording. Subclasses of this class will most likely be anonymous inner classes placed inside test case
 * classes.
 * <p>
 * Putting your recording logic into the initializer of the {@link Record} subclass instance should make the recording part of your tests more
 * recognizable in the code.
 * <p>
 * Also, with the help of {@link CallInterceptorAspect}, using {@link Record} instances does not require usage of {@link VMock#record(Object)} or
 * {@link VMock#pause()} methods. The VMock will call them by itself.
 * <p>
 * Example usage:
 * 
 * <pre>
 * <code>
 * new Record() {{
 *     expect(BigDecimal.valueOf(1)).andReturn(BigDecimal.ZERO);
 * }};
 * </code>
 * </pre>
 * 
 * @since 1.1.0
 * @author marcin.jagus
 */
public abstract class Record {

    protected Record() {
        VMock.record(this);
    }
}
